View Javadoc
1 //============================================================================== 2 // file : IndexFiles.java 3 // project: Lucene Search System 4 // 5 // last change: date: $Date: 2003/09/09 03:11:52 $ 6 // by: $Author: bitiboy $ 7 // revision: $Revision: 1.1 $ 8 //------------------------------------------------------------------------------ 9 // copyright: GNU GPL Software License (see class documentation) 10 //============================================================================== 11 12 package com.justhis.lucene.xml; 13 14 15 /* 16 * $Id: IndexFiles.java,v 1.1 2003/09/09 03:11:52 bitiboy Exp $ 17 * 18 * Copyright 2003 Acai Software All Rights Reserved. 19 * 20 * This file LuceneException.java is part of the Lucene Search System. 21 22 * The Lucene Search System is free software; you can redistribute it and/or modify 23 * it under the terms of the GNU General Public License as published by 24 * the Free Software Foundation; either version 2 of the License, or 25 * (at your option) any later version. 26 27 * Lucene Search System is distributed in the hope that it will be useful, 28 * but WITHOUT ANY WARRANTY; without even the implied warranty of 29 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 30 * GNU General Public License for more details. 31 32 * You should have received a copy of the GNU General Public License 33 * along with the Lucene Search System; if not, write to the Free Software 34 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 35 36 * http://www.justhis.com http://ejb.cn 37 * CONTACT: email = webmaster@justhis.com superaxis@sohu.com 38 */ 39 import com.justhis.lucene.LuceneException; 40 41 import org.apache.lucene.analysis.standard.StandardAnalyzer; 42 import org.apache.lucene.document.Document; 43 import org.apache.lucene.index.IndexReader; 44 import org.apache.lucene.index.IndexWriter; 45 46 import org.xml.sax.SAXException; 47 48 import java.io.File; 49 import java.io.IOException; 50 51 import javax.xml.parsers.ParserConfigurationException; 52 53 54 /*** 55 * create index from xml files 56 * 57 * @author <a href="http://blog.ejb.cn">acai</a> 58 * @version $Revision: 1.1 $ 59 */ 60 public class IndexFiles { 61 //~ Methods ---------------------------------------------------------------- 62 63 /*** 64 * ?????????????? 65 * 66 * @param writer lucene writer 67 * @param file ???????????? 68 * 69 * @throws ParserConfigurationException ??????xml?????????????????????? 70 * @throws SAXException ????sax????xml???????? 71 * @throws IOException ???????????????? 72 */ 73 public static void indexDocs(IndexWriter writer, File file) 74 throws ParserConfigurationException, SAXException, 75 IOException { 76 if (file.isDirectory()) { 77 String[] files = file.list(); 78 79 for (int i = 0; i < files.length; i++) { 80 indexDocs(writer, new File(file, files[i])); 81 } 82 } else { 83 System.out.println("adding " + file); 84 85 XMLDocumentHandlerSAX hdlr = new XMLDocumentHandlerSAX(file); 86 writer.addDocument(hdlr.getDocument()); 87 88 // For DOM, use 89 // XMLDocumentHandlerDOM hdlr = new XMLDocumentHandlerDOM(); 90 // writer.addDocument(hdlr.createXMLDocument(file)); 91 } 92 } 93 94 /*** 95 * ?????????????????? 96 * 97 * @param indexPath ???????????????? 98 * @param filePath ???????? 99 * 100 * @throws LuceneException ??????????XML??????????????. 101 */ 102 public static void addDocument(String indexPath, String filePath) 103 throws LuceneException { 104 IndexWriter writer = null; 105 106 try { 107 if (IndexReader.indexExists(indexPath)) { 108 writer = new IndexWriter(indexPath, new StandardAnalyzer(), 109 false 110 ); 111 } else { 112 writer = new IndexWriter(indexPath, new StandardAnalyzer(), true); 113 } 114 115 indexDocs(writer, new File(filePath)); 116 writer.optimize(); 117 } catch (ParserConfigurationException e) { 118 throw new LuceneException(e.getMessage(), e); 119 } catch (SAXException e) { 120 throw new LuceneException(e.getMessage(), e); 121 } catch (IOException e) { 122 throw new LuceneException(e.getMessage(), e); 123 } finally { 124 if (writer != null) { 125 try { 126 writer.close(); 127 } catch (IOException e1) { 128 } 129 } 130 } 131 } 132 133 /*** 134 * ?????????????????? 135 * 136 * @param indexPath ???????? 137 * @param keyId ?????? ??????????????????objectid?????????? 138 * 139 * @throws LuceneException ??????????????????IO???? 140 */ 141 public static void deleteDocument(String indexPath, String keyId) 142 throws LuceneException { 143 IndexReader reader = null; 144 145 try { 146 reader = IndexReader.open(indexPath); 147 148 for (int i = 0; i < reader.numDocs(); i++) { 149 if (reader.isDeleted(i)) { 150 continue; 151 } 152 153 Document doc = reader.document(i); 154 155 if (doc.get("objectId").equals(keyId)) { 156 reader.delete(i); 157 158 break; 159 } 160 } 161 } catch (IOException e) { 162 throw new LuceneException(e.getMessage(), e); 163 } finally { 164 if (reader != null) { 165 try { 166 reader.close(); 167 } catch (IOException e1) { 168 e1.printStackTrace(); 169 } 170 } 171 } 172 } 173 } 174 /* 175 * $Log: IndexFiles.java,v $ 176 * Revision 1.1 2003/09/09 03:11:52 bitiboy 177 * *** empty log message *** 178 * 179 * Revision 1.1 2003/09/09 00:54:45 bitiboy 180 * *** empty log message *** 181 * 182 * Revision 1.1 2003/09/07 08:23:50 superaxis 183 * *** empty log message *** 184 * 185 * 186 */

This page was automatically generated by Maven